package com.huang.entity.request;

import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.huang.exception.IllegalParamException;

import java.math.BigDecimal;
import java.util.Collection;
import java.util.Date;
import java.util.Objects;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @author Swinboo
 * @date 2022-03-19 14:04
 * @description:
 */
public class ParamCheckUtils {

    public static void userNameCheck(String context, String msg){
        String REGEX = "^[a-z][0-9a-z-]{1,32}$";
        Pattern pattern = Pattern.compile(REGEX);
        Matcher matcher = pattern.matcher(context);
        if (!matcher.matches()) {
            throw new IllegalParamException(msg);
        }
    }

    public static void noEmpty(String context, String msg) {
        if (StringUtils.isEmpty(context)) {
            throw new IllegalParamException(msg);
        }
    }


    public static void noEmpty(Long context, String msg) {
        if (Objects.isNull(context)) {
            throw new IllegalParamException(msg);
        }
    }

    public static void noEmpty(Integer context, String msg) {
        if (Objects.isNull(context)) {
            throw new IllegalParamException(msg);
        }
    }

    public static void noEmpty(BigDecimal context, String msg) {
        if (Objects.isNull(context)) {
            throw new IllegalParamException(msg);
        }
    }

    public static void noEmpty(Double context, String msg) {
        if (Objects.isNull(context)) {
            throw new IllegalParamException(msg);
        }
    }

    public static void noEmpty(Float context, String msg) {
        if (Objects.isNull(context)) {
            throw new IllegalParamException(msg);
        }
    }


    public static void noEmpty(Collection<?> collection, String msg) {
        if (CollectionUtils.isEmpty(collection)) {
            throw new IllegalParamException(msg);
        }
    }

    public static void checkPhone(String cellPhone, String msg) {
        if (!MobileUtil.checkPhone(cellPhone)) {
            throw new IllegalParamException(msg);
        }
    }

//    public static void checkIdCardNum(String idCardNum, String msg) {
//        if (!IdCardUtil.check(idCardNum)) {
//            throw new IllegalParamException(msg);
//        }
//    }
//
//
//    public static void isHttpUrl(String url, String msg) {
//        if (!HUtil.isHttpUrl(url)) {
//            throw new IllegalParamException(msg);
//        }
//    }

    public static void isStartTimeGRendTime(Date startTime, Date endTime){
        if (startTime.getTime()> endTime.getTime()){
            throw new IllegalParamException("开始时间不能大于结束时间");
        }
    }
}
